﻿#region Using Statements
using System.Diagnostics;
using DirectZZT.Shared.World.Objects;
#endregion

namespace DirectZZT.Shared.Gameplay
{
    /// <summary>
    /// Packs the information of one physical player, which is used in networking.
    /// </summary>
    [DebuggerDisplay("Name = {Name}")]
    public class Player
    {
        /// <summary>
        /// Gets/sets the reference to the board object that is the visual representation of this player.
        /// </summary>
        public BoardObject BoardObject { get; set; }
        /// <summary>
        /// Gets/sets the reference to the player board object aspect.
        /// </summary>
        public IPlayerBoardObject PlayerBoardObject { get; set; }
        /// <summary>
        /// Gets/sets the name of this player.
        /// </summary>
        public string Name { get; set; }
        /// <summary>
        /// Gets/sets the player's inventory.
        /// </summary>
        public PlayerInventory Inventory { get; set; }
        /// <summary>
        /// Gets/sets the health of this creature.
        /// </summary>
        public int Health { get; set; }
        /// <summary>
        /// Gets/sets the armor of this creature.
        /// </summary>
        public int Armor { get; set; }

        #region Constructors

        /// <summary>
        /// Initializes a new instance of the Player class.
        /// </summary>
        public Player()
        {
            Name = "Nameless";
            Inventory = new PlayerInventory();
            Health = 100;
            Armor = 0;
        }

        #endregion
    }
}
